﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crosland.Automotriz.Data.Dao.Linq;
using Crosland.Automotriz.Core;

using Crosland.Automotriz.Logic.ControlExeption;
using System.Data.SqlClient;


namespace Crosland.Automotriz.Logic.Linq
{
    public class clsT_Ven_Metas_VendedorLogic
    {

        clsT_Ven_Metas_VendedorDAO clst_ven_metas_vendedor = new clsT_Ven_Metas_VendedorDAO();

        public IEnumerable<Object> lista(int id, string anio, String strTipoMeta)
        {


            try {
                return clst_ven_metas_vendedor.lista(id, anio, strTipoMeta);
            }
            catch (SqlException sqlEx)
            {
                throw new RunException("ERROR EN EL PROCEDIMIENTO ListarMarcaActivo", sqlEx);
            }
            catch (Exception ex)
            {
                throw new RunException("ERROR EN LA APLICACION POR FAVOR CONSULTE: ", ex);
            }
           

        }


        public IEnumerable<Object> listarVendedor(int idCabOfi)
        {

            return clst_ven_metas_vendedor.listarVendedor(idCabOfi);
        }
        public List<Globales.lista_Metas_Vendedor> filtrolistarVendedor(int idCabVen)
        {
            return clst_ven_metas_vendedor.filtrolistarVendedor(idCabVen);
        }

        public List<Globales.lista_Metas_Vendedor> filtroAnioMes(int idCabVen, string anio, string mes)
        {


            try {
                return clst_ven_metas_vendedor.filtroAnioMes(idCabVen, anio, mes);
            }
            catch (SqlException sqlEx)
            {
                throw new RunException("ERROR EN EL PROCEDIMIENTO ListarMarcaActivo", sqlEx);
            }
            catch (Exception ex)
            {
                throw new RunException("ERROR EN LA APLICACION POR FAVOR CONSULTE: ", ex);
            }
           

        }
        public bool Modificar(int id_ubic_cab, int id_vendedor, string anio, string mes, int id_grupo_articulo, int cant)
        {
            return clst_ven_metas_vendedor.Modificar(id_ubic_cab, id_vendedor, anio, mes, id_grupo_articulo, cant);

        }
        public bool ModificarIMP(int id_ubic_cab, int id_vendedor, string anio, string mes, int id_grupo_articulo, decimal Imp_meta)
        {
            return clst_ven_metas_vendedor.ModificarIMP(id_ubic_cab, id_vendedor, anio, mes, id_grupo_articulo, Imp_meta);

        }
        public List<VW_VEN_METAS_GRUPO_ARTICULO> listaTipoNroRuedas()
        {
            try
            {
                return clst_ven_metas_vendedor.listaGrupoArticulos();
            }
            catch (SqlException sqlEx) { throw new RunException("ERROR EN EL PROCEDIMIENTO listaTipoNroRuedas", sqlEx); }
            catch (Exception ex) { throw new RunException("ERROR EN LA APLICACION POR FAVOR CONSULTE: ", ex); }
          
        
        }

        public bool ModificarCantidad(int id_ubic_cab, int cant)
        {
            return clst_ven_metas_vendedor.ModificarCantidad(id_ubic_cab, cant);
        }

        public bool ModicarVen(T_VEN_METAS_VENDEDOR obj)
        {

            return clst_ven_metas_vendedor.ModicarVen(obj);
        }

        public bool Insertar(T_VEN_METAS_VENDEDOR Obj)
        {
            try {
                return clst_ven_metas_vendedor.Insertar(Obj);
            }
            catch (SqlException sqlEx)
            {
                throw new RunException("ERROR EN EL PROCEDIMIENTO Insertar", sqlEx);
            }
            catch (Exception ex) { throw new RunException("ERROR EN LA APLICACION POR FAVOR CONSULTE: ", ex); }
            

        }

        public int BusquedaRegistroExistentes(int ID_UBIC_VEND_CAB, int ID_VENDEDOR, string ANIO, string MES, int ID_GRUPO_ARTICULO)
        {

            return clst_ven_metas_vendedor.BusquedaRegistroExistentes(ID_UBIC_VEND_CAB, ID_VENDEDOR, ANIO, MES, ID_GRUPO_ARTICULO);
        }
        public bool Eliminar(T_VEN_METAS_VENDEDOR Obj)
        {
            return clst_ven_metas_vendedor.Eliminar(Obj);
        }

        public bool InsertaReplicacion(int ID_UBIC_VEND_CAB, int ID_VENDEDOR, int ID_GRUPO_ARTICULO, string ANIO, string MES, string NroRuedas, int CANT, int? IMP_META, int? ID_MONEDA)
        {
            try
            {
                return clst_ven_metas_vendedor.InsertaReplicacion(ID_UBIC_VEND_CAB, ID_VENDEDOR, ID_GRUPO_ARTICULO, ANIO, MES, NroRuedas, CANT, IMP_META, ID_MONEDA);

            }
            catch (SqlException ex)
            {

                throw new DataException("Error en la Inserción", ex);
            }
            catch (Exception ex)
            {
                throw new RunException("Error en la aplicación", ex);
            }

        }

    }
}
